home *** CD-ROM | disk | FTP | other *** search
/ How to Get Online 1996 Spring / HOW2GON.ISO / mac / TCP / MacTCP Monitor 1.0d30 / MacTCP Monitor Read Me next >
Encoding:
Text File  |  1995-08-08  |  19.7 KB  |  445 lines  |  [TEXT/R*ch]

  1.  
  2. MacTCP Monitor
  3. by Chris Johnson
  4. ©1994 The University of Texas System Office of Telecommunication Services
  5.  
  6.  
  7. Welcome to the early days of testing for MacTCP Monitor, and an experimental
  8. Simple Internet Version Control (SIVC - pronounced "civic") server.
  9.  
  10. MacTCP Monitor is a simple (in concept, anyway) utility for displaying your 
  11. Mac's TCP activity. It continuously graphs the number of bytes sent/received 
  12. by MacTCP in any given second. This can be handy for keeping an eye on the 
  13. activity of servers running in the background of your Mac, or for gauging 
  14. at-a-glance the throughput of that TCP code you've been working on lately.
  15.  
  16. MacTCP Monitor requires at least System 7, Apple's Thread Manager extension 
  17. (which is built into System 7.5, BTW), Color QuickDraw, and, of course, 
  18. MacTCP.  :-)  Note that some optional parts of MacTCP Monitor only work if 
  19. Peter N. Lewis' "Anarchie" and "MacTCP Watcher" utilities are present on your 
  20. machine.
  21.  
  22. The TCP Data Transfer Graph window can be resized from any edge/corner (when
  23. the mouse is near enough to an edge/corner, the cursor will change 
  24. accordingly to show you what's going on). The width of the label area on the 
  25. left side of the window can be changed by dragging its dividing line. The 
  26. window can be dragged from any point in the window that isn't an edge/corner 
  27. or the aforementioned dividing line (the cursor will change to a hand shape).
  28.  
  29. And, of course, be sure to check-out the dialogs accessible via the 
  30. "Preferences" items in the File menu to see how you can customize MacTCP
  31. Monitor's behavior.
  32.  
  33. If you have comments, bug reports, etc. send them to "chrisj@mail.utexas.edu".
  34.  
  35.  
  36.  
  37.  
  38.  
  39. So What's That SIVC Thing You Mentioned?
  40. ----------------------------------------
  41.  
  42. SIVC (a client of which is built into MacTCP Monitor) is a system for doing 
  43. two things:
  44.  
  45.     1. Determining the size of a product's user base on the Internet. This is
  46.        really useful when you're trying to justify working on a product to
  47.        yourself or your boss. Just waving your arms and asserting that there
  48.        *must* be lots of people using your product because you've received 
  49.        a bunch of email messages about it isn't really very convincing. SIVC
  50.        provides the developer with real numbers that are generally accurate 
  51.        and continuously updated.
  52.        
  53.     2. In keeping with the idea that this exchange of information shouldn't
  54.        benefit only the developer, a SIVC server returns to the client current
  55.        version information for the product, including the exact location from
  56.        which the current version(s) can be downloaded. This allows the 
  57.        application to notify its users when new versions are released, and 
  58.        even makes it easy for the application to download new versions of 
  59.        itself for the user.
  60.  
  61. What about privacy? SIVC shouldn't represent a threat to most people's privacy. 
  62. The only information the SIVC client in this program sends to the server is: 
  63. (1) the name of this program, and (2) the version of this program. The server 
  64. will also log the IP number from which this information was received. So, the 
  65. server doesn't know your name, email address, etc. It just logs the fact that 
  66. someone at IP number X is running version Y of this program. Hopefully this 
  67. won't represent a problem for anyone.
  68.  
  69. If you do feel that SIVC represents a threat to your privacy, you can disable
  70. all SIVC features in MacTCP Monitor from the "Internet Version Control" 
  71. preferences dialog found in the "File" menu. Personally, I'd very much prefer 
  72. that people leave SIVC *enabled*, however. Without it, I don't know if anyone 
  73. is using the product.
  74.  
  75. Note to developers: if you'd be interested in using SIVC in one of your 
  76. products, let me know and I'll send you details. (There's no charge for
  77. the server, BTW, I'm just not quite ready to release it openly, yet.)
  78.  
  79.  
  80. Changes in 1.0d30
  81. -----------------
  82.  
  83. * Updated SIVC code to embrace latest improvements in protocol.
  84.  
  85. * Built app with latest versions of common code base (various minor tweaks
  86.   and bug fixes).
  87.  
  88. * Looked into making MacTCP Monitor work with Open Transport, but found
  89.   that it's going to take some work, so OT compatibility isn't in this 
  90.   version.
  91.  
  92.  
  93. Changes in 1.0d29
  94. -----------------
  95.  
  96. * Finally found the true source of the disabled Apple menu bug some people
  97.   encountered. Thanks to Rick Watson for the use of his Mac while tracking
  98.   down this problem. Turns out one subroutine was surprised by menus with
  99.   more than 31 items in them, and bungled a test of the menu item states 
  100.   when that was the case. As a result, people (like me) with relatively 
  101.   uncrowded Apple menus didn't encounter this problem.
  102.   
  103. * While working on another program built on the same code base, found a 
  104.   very obscure bug that could result in bogus values being passed as 
  105.   pointers or handles to DisposPtr or DisposHandle, respectively. MacTCP 
  106.   Monitor probably never exercised the afflicted piece of code in a way 
  107.   that could cause the mistake to occur, but it was an annoying bug 
  108.   elsewhere and I'm glad to be rid of it.
  109.  
  110. * Told the tables in the URL handling code that Eudora 3.0 will provide 
  111.   support for "get URL" AppleEvents. Anyone out there who's testing it 
  112.   should find that the "mailto:" URL in 'Monitor's About box will use that
  113.   new Eudora in preference to NewsWatcher, all things being equal (there 
  114.   are cases in which it will use NewsWatcher anyway, but, you don't want 
  115.   to know all the details).
  116.   
  117.   It has been suggested that the URL code should, whenever possible, consult
  118.   Internet Config to determine the user's preferred client for any given 
  119.   type of URL. In the future, it will. I've written Internet Config-aware 
  120.   code before, so it should be straightforward. I'm just not gonna do it 
  121.   right now.  :-)
  122.  
  123.  
  124. Changes in 1.0d28
  125. -----------------
  126.  
  127. * Identified and fixed an old bug in the multithreaded application shell on
  128.   which MacTCP Monitor is based. The bug could cause pointers in one routine
  129.   to become invalid on occasion, which is certainly a bad thing. This fix 
  130.   could take care of several infrequently reported bugs which I haven't been
  131.   able to reproduce in any of my own tests. It might even take care of the 
  132.   disabled Apple menu bug a number of people have reported, but which I also
  133.   haven't been able to reproduce.
  134.   
  135. * An enhancement to the multithreaded application shell enables/disables the 
  136.   Edit menu, and/or its underlying items, as appropriate while text is 
  137.   manipulated in dialog text edit fields. A possible problem with clipboard 
  138.   import/export in such situations should be history now, too.
  139.  
  140.  
  141. Changes in 1.0d27
  142. -----------------
  143.  
  144. * Finally acted on a suggestion by Chuck Shotten to change the keyword 
  145.   delimiters in SIVC transactions from equal signs to colons. Making this
  146.   change required significant alterations to the SIVC server, and minor
  147.   changes to the client code in MacTCP Monitor. The changes to the SIVC 
  148.   server were significant enough that it wasn't possible (given the time 
  149.   constraints) to retain backward compatibility with the old SIVC code in 
  150.   past versions of MacTCP Monitor. As a result, I'll run both the old and
  151.   new SIVC servers concurrently until the 'Monitor user base has more-or-
  152.   less universally upgraded to 1.0d27, thus eliminating any apparent loss
  153.   of service. As the two servers will be keeping separate user base totals,
  154.   those figures will suffer during this process, but it's better to make 
  155.   the change-over now, rather than later.
  156.   
  157.   This change also effects the format of the MacTCP Monitor Prefs file (the 
  158.   same parsing code is used), but backward compatibility has been retained, 
  159.   so users shouldn't be aware that anything has changed in this respect.
  160.   
  161. * Various minor improvements in the application shell on which 'Monitor is 
  162.   built.
  163.  
  164.  
  165. Changes in 1.0d26
  166. -----------------
  167.  
  168. * Fixed a bug (probably introduced back in 1.0d24) which frequently prevented
  169.   the SIVC code in MacTCP Monitor from notifying the user when the product
  170.   went out of date. The queries were made correctly, but the responses 
  171.   could be lost after being received and parsed. Oops. This bug also resulted
  172.   in clients making a number of unnecessary automatic queries to the SIVC
  173.   server. (Automatic queries from versions of MacTCP Monitor prior to 1.0d26
  174.   will no longer be counted in the User Base total, as a result.)
  175.   
  176.   Anyway, tell your friends to upgrade to 1.0d26; they may not find out about
  177.   it otherwise. (Note that the "Current Version Info" item in the "Special" 
  178.   menu has always worked fine, so regardless of what version people currently
  179.   have, they can still do the download of 1.0d26 that way.)
  180.  
  181. * Fixed a bug which resulted in a bad value for the next automatic SIVC query 
  182.   time being recorded in the prefs file.
  183.  
  184. * MacTCP Monitor now checks for the presense of Color QuickDraw while it loads.
  185.   If it doesn't find it, the program *should* just quit now, instead of 
  186.   crashing. I don't have a machine around here without Color QuickDraw, so I 
  187.   can't test this, but the check is simple and should work as anticipated.
  188.   
  189. * Various minor adjustments in the application shell. None of these 
  190.   adjustments should result in an apparent change of behavior in this product,
  191.   but were necessary to make other products work properly.
  192.  
  193.  
  194. Changes in 1.0d25
  195. -----------------
  196.  
  197. * Fixed a logic error which prevented the data transfer graph from being 
  198.   updated when the graph labels were entirely obscured; used an "and" where
  199.   I should have used an "or". Nuts.
  200.   
  201. * Replaced the "Current Version Info" dialog with the slightly redesigned one
  202.   from the SIVC Client application which is currently in the works. The new
  203.   dialog is slightly more compact, while displaying all the same information.
  204.  
  205. * Fixed some anachronistic resource names. This had no effect on anything, it
  206.   just made me feel better.  :-)
  207.  
  208.  
  209. Changes in 1.0d24
  210. -----------------
  211.  
  212. * Rewrote TCP Data Transfer Graph plotting code. Previous code was highly
  213.   optimized for the case in which only a reasonable number of samples were
  214.   being drawn at the right edge of an *unobscured* window. Judging from some
  215.   of the email I've received, that was the wrong case for which to optimize.
  216.   
  217.   I had originally believed that the only alternatives I had were (a) an
  218.   implementation which would tend to flicker when drawing new samples 
  219.   (blech!), or (b) an implementation using an off-screen pixmap which would 
  220.   use memory like it was going out of style (especially for large windows 
  221.   on deep monitors).
  222.   
  223.   Instead, a variation of the aforementioned option 'a' has been implemented,
  224.   with a lot of work devoted to limiting flicker. From my own testing, it
  225.   seems to work fine, with only a little additional flicker (which may or may
  226.   not actually be noticeable) when processing update events. In exchange, it
  227.   plots much faster than its predecessors, especially when the graph window 
  228.   is partially obscured.
  229.   
  230. * When the graph window is resized, its new position is now recorded in
  231.   the prefs file. In the past it appears that only the new window *size*
  232.   was stored, resulting in the window reappearing in an unexpected place
  233.   when the program was next launched.
  234.   
  235. * Clicking on one of the graph's resize edges/corners without actually
  236.   doing a resize no longer results in the window being redrawn and the
  237.   window's position being rewritten to the prefs file.
  238.   
  239. * DebugStr calls will now only be made on machines that actually have MacsBug 
  240.   installed.  :-)  This should eliminate some "unimplemented trap" crashes 
  241.   that one person reported. If you do have MacsBug, be prepared for the 
  242.   unlikely possibility that you might see one of my debugging messages some 
  243.   day. If you do, jot it down, type 'g' on your keyboard, and hit return. The 
  244.   application will go back to running as normally as it can under whatever 
  245.   weird circumstances it has encountered. If you see additional messages, just 
  246.   repeat the aforementioned steps. Finally, send me a message telling me about 
  247.   those messages and what was going on when they appeared. (Extreme low-memory 
  248.   conditions are a possible cause, BTW.)
  249.   
  250. * Made further attempts to reproduce the bug that results in the Apple menu
  251.   being disabled on 68K Macs. No luck so far. However, I have removed some
  252.   redundant old code from the primary menu handling routine that just might
  253.   have been able to cause such a problem. If you were experiencing this 
  254.   problem and find that it's fixed now, please let me know. By the same token,
  255.   if it isn't fixed, please let me know.
  256.  
  257.  
  258. Changes in 1.0d23
  259. -----------------
  260.  
  261. * Edit menu items are now enabled in any dialog that contains text edit
  262.   fields. For simplicity at this stage, the items are enabled whether or
  263.   not they happen to be useful at the time, e.g. the "Copy" item will be
  264.   enabled even if there's no text selected at the time. I'll take care 
  265.   of such details later, after I rearrange the menu handling code.
  266.  
  267. * Fixed a typo in the About box. I'm so embarassed. But, hey, if you 
  268.   didn't notice, I'm not gonna tell you what it was. :-)
  269.  
  270.  
  271. Changes in 1.0d22
  272. -----------------
  273.  
  274. * Fixed a bug in the URL opening code which prevented it from correctly 
  275.   checking the versions of the applications to which it was considering
  276.   sending "Get URL" AppleEvents. Due to bugs in versions of some apps 
  277.   which provide "Get URL" capabilities, this could cause crashes (none 
  278.   were reported, though).
  279.  
  280.  
  281. Changes in 1.0d21
  282. -----------------
  283.  
  284. * Added alerts to notify users of basic failure conditions: Thread Manager
  285.   not present, AppleEvents not present, and that kind of really basic stuff.
  286.   In the past when these conditions were detected, the program would just 
  287.   beep three times and quit.
  288.   
  289. * Added links to info about the product and me to the About dialog. Since
  290.   I'd already added the "mailto:" link to my email address in a previous 
  291.   version, these additions just seemed to make sense. Had to considerably
  292.   beef up my URL opening code in the process.
  293.  
  294. * Replaced previous U.T. logo in the About dialog with a considerably 
  295.   cleaner version.
  296.   
  297. * I had hoped to do some basic restructuring in a few areas, but things have
  298.   been busy lately and haven't, as a result, allowed much time for serious 
  299.   work on this product. Hopefully things will improve in a couple of weeks.
  300.  
  301.  
  302. Changes in 1.0d20
  303. -----------------
  304.  
  305. * Corrected an error in the TCP Data Transfer Graph drawing logic which
  306.   resulted in at least one pixel of "writing" being plotted in the graph
  307.   during any second in which data was transferred, even if all the data
  308.   was actually being read at that time.
  309.   
  310. * Made the TCP Connection States window appear open by default. (It used to
  311.   be closed by default.)
  312.  
  313.  
  314. Changes in 1.0d19
  315. -----------------
  316.  
  317. * Acting on an old suggestion from Peter Lewis, made my email address in the
  318.   About box into a "mailto" URL link. Just click on it (it's blue and 
  319.   underlined just as it would appear in most WWW clients) and it'll fire-up
  320.   NewsWatcher and create a blank email message addressed to me. In order for 
  321.   this feature to work, you must have a current version of John Norstad's 
  322.   NewsWatcher application (like 2.0b24).
  323.   
  324. * Revised my simple-minded URL-opening code to be slightly less simple-minded.
  325.   It now knows about "ftp", "mailto", "news", "http", and "gopher" URLs. (It
  326.   used to only deal with "ftp" URLs.)
  327.  
  328.  
  329. Changes in 1.0d18
  330. -----------------
  331.  
  332. * Changed TCP data transfer statistics gathering code to separately store 
  333.   information on bytes read and written. (These totals used to be added
  334.   together and stored in a single field.)
  335.  
  336. * Changed TCP data transfer graph to draw separate read and write bars, one
  337.   stacked on top of the other. (The write bar is always on top.)
  338.   
  339. * Changed TCP data transfer graph preferences dialog to allow you to set the
  340.   colors of the aforementioned read and write bars. By default, the read and
  341.   write bars are set to dull shades of green and red, respectively.
  342.  
  343. * Changed some Preferences menu items and preference window titles to 
  344.   be a little more specific about their purposes.
  345.  
  346. * Changed the "Contacting User Counter Server..." dialog to read "Contacting
  347.   SIVC Server...". The "User Counter" name has been a misnomer for a while.
  348.  
  349.  
  350. Changes in 1.0d17
  351. -----------------
  352.  
  353. * Added a "Connection State Cells" preferences dialog, and modified the
  354.   Connection States window to make use of the values set therein.
  355.  
  356. * When copying the Connection States window to the Clipboard, the image is
  357.   now framed. I think it looks better this way.
  358.  
  359. * If the prefs. file was open in another application with read/write access 
  360.   and MacTCP Monitor was launched, it would startup, revert to its default 
  361.   configuration, and attempt to close the unopened MacTCP resolver when the 
  362.   user quit the program. This has been fixed. Now 'Monitor just beeps three
  363.   times and exits in this situation, which shouldn't arise in normal usage.
  364.  
  365.  
  366. Changes in 1.0d16
  367. -----------------
  368.  
  369. * Made the "New" item in the "File" menu hierarchical, and placed items in that
  370.   hierarchical menu for opening all the major features of MacTCP Monitor -
  371.   the data transfer graph, and the connection states window. The "Connection
  372.   States" item has been removed from the "Special" menu as a result.
  373.  
  374. * Added a "Connection State Colors" item to the preferences menu. The dialog
  375.   behind that item allows you to set separate colors for each and every 
  376.   TCP connection state, as well as for the read and write indicators. Patterns
  377.   to go along with each color may also be designated, which is likely to
  378.   be useful on machines with limited color palettes.
  379.  
  380. * Corrected (in all probability) a bug that would occasionally prevent the 
  381.   last active connection in the connection state window from being redrawn
  382.   in the closed state when it was closed.
  383.  
  384. * Fixed a bug in the launch-by-signature code that prevented MacTCP Monitor
  385.   from launching MacTCP Watcher and Anarchie if they were stored on anything
  386.   other than the startup volume.
  387.  
  388.  
  389. Changes in 1.0d15
  390. -----------------
  391.  
  392. * Based on a suggestion from Peter N. Lewis, added a window for monitoring 
  393.   the state of all 64 of the connections MacTCP will support at any given
  394.   time. Connection states are color-coded as follows:
  395.   
  396.   + Gray         -- Connection is closed. (Closed.)
  397.   + Blue (50%)   -- Listening for, or establishing, a connection. (Listen,
  398.                     SYNReceived, and SYNSent.)
  399.   + Blue (solid) -- Connection open. (Established.)
  400.   + Cyan         -- Connection closing (FINWait1, FINWait2, CloseWait, 
  401.                     Closing, and LastAck.)
  402.   + Yellow       -- Breaking connection. (TimeWait.)
  403.   
  404.   In addition, green and/or red color bars may be overlaid to indicate that
  405.   data is being read and/or written, respectively, on the connection.
  406.   
  407.   At present, you open this window by choosing the "Connection States" item
  408.   in the "Special" menu. I'll probably move it somewhere else in a future
  409.   version.
  410.   
  411.   In the future, I'll add a preferences dialog that'll let you pick the colors
  412.   used for all these states, set the cell size in the window, etc.
  413.  
  414. * Fixed a bug in the Thread Message Manager's time distribution routine. The
  415.   bug shouldn't have effected previous versions, but became a problem when 
  416.   the connection state window was added.
  417.   
  418. * Moved the "Windows" menu to the end of the menu bar. This seems like a
  419.   better place for it.
  420.   
  421. * Probably did some other stuff, too, but still haven't worked on Rick 
  422.   Watson's useful suggestions.
  423.  
  424.  
  425. Changes in 1.0d14
  426. -----------------
  427.  
  428. * Incorporated John Nortsad's correction to the definition of the TCPSendPB 
  429.   parameter block in the MacTCP.h header from Apple's version 2.0a3 of the 
  430.   Universal Headers. (The "filler" field was in the wrong place in Apple's
  431.   version.)
  432.  
  433. * Retouched the U.T. System seal in the about box in order to make it look 
  434.   the same in the 256, Thousands and Millions color modes. Previous versions
  435.   looked fine in the Thousands and Millions modes, but not in the 256 color
  436.   mode. (Hey, I always use Millions. :-)
  437.  
  438.  
  439. Changes in 1.0d13
  440. -----------------
  441.  
  442. * Fixed problem with radio buttons in 68K version.
  443.  
  444.  
  445.